{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Lecture 3: Autodiff in JAX"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import jax\n",
    "import jax.numpy as np\n",
    "from jax import grad, vmap\n",
    "\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "jax:    0.4.24\n",
      "jaxlib: 0.4.24\n",
      "numpy:  1.23.5\n",
      "python: 3.10.9 (main, Mar  8 2023, 10:47:38) [GCC 11.2.0]\n",
      "jax.devices (1 total, 1 local): [CpuDevice(id=0)]\n",
      "process_count: 1\n"
     ]
    }
   ],
   "source": [
    "jax.print_environment_info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def sigmoid(x):\n",
    "    return 1.0 / (1.0 + np.exp(-x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Array(0.5, dtype=float32, weak_type=True)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sigmoid(0.0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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OAHF4XCoc+fOZsfwebW1tVq9erWysrKabM/KytLy5ctNShUYHA6HJPF33I5uvfVWTZw4UWeffbbZUbyaTyyUh2MzDEPXXXedpk6dqhEjRmjv3r1mRwoYu3fv1rPPPqu//vWvZkfxeSUlJXK73UpMTGyyPTExUUVFRSal8n+GYWjGjBk69dRTNWjQILPj+KW33npLa9as0cqVK82O4vU4M+KF/vznP8tisfzsY9WqVXr22WfldDo1c+ZMsyP7rOY+1z9WUFCg8847T5dddpluvPFGk5L7H4vF0uRzwzCO2oa2c9ttt2nDhg2aP3++2VH8Un5+vu6880698cYbstlsZsfxeowZ8UIlJSUqKSn52X169OihK664Qh999FGTF2y3263g4GD99re/1T/+8Y/2jurzmvtc//BiUlBQoPHjx2v06NGaN2+egoLo8yeqtrZWEREReuedd3TxxRc3br/zzju1bt06LV682MR0/un222/XwoULtWTJEqWnp5sdxy8tXLhQF198sYKDgxu3ud1uWSwWBQUFyeVyNflaoKOM+LC8vDw5nc7GzwsKCnTuuefq3//+t0aPHq3u3bubmM7/HDhwQOPHj1dmZqbeeOMNXkja0OjRo5WZmak5c+Y0bhswYIAuvPBCBrC2IcMwdPvtt+v999/XV199pT59+pgdyW+Vl5dr3759TbZdf/316t+/v+69914ujf0EY0Z8WGpqapPPo6KiJEm9evWiiLSxgoICnXHGGUpNTdUTTzyhQ4cONX6ta9euJibzDzNmzNA111yjESNGaMyYMXrppZeUl5enqVOnmh3Nr9x6663617/+pQ8++EDR0dGNY3LsdrvCw8NNTudfoqOjjyockZGRiouLo4gcA2UEaIbPP/9cu3bt0q5du44qepxcPHGTJk1SaWmpZs+ercLCQg0aNEiLFi1SWlqa2dH8yg+3Tp9xxhlNtr/22mu67rrrOj4Q8D0u0wAAAFMx+g4AAJiKMgIAAExFGQEAAKaijAAAAFNRRgAAgKkoIwAAwFSUEQAAYCrKCAAAMBVlBAAAmIoyAgAATEUZAQAApqKMAAAAU/3/7tul9rtx9YgAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "xs = np.arange(-5, 5, 0.1)\n",
    "plt.plot(xs, sigmoid(xs))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{ lambda ; a:f32[]. let\n",
       "    b:f32[] = neg a\n",
       "    c:f32[] = exp b\n",
       "    d:f32[] = add 1.0 c\n",
       "    e:f32[] = div 1.0 d\n",
       "  in (e,) }"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from jax import make_jaxpr\n",
    "make_jaxpr(sigmoid)(1.0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# f = sigmoid\n",
    "f = np.tanh\n",
    "fp = grad(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Array(1., dtype=float32, weak_type=True)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fp(0.0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "v_fp = vmap(fp)\n",
    "\n",
    "xs = np.arange(-5, 5, 0.1)\n",
    "plt.plot(xs, f(xs))\n",
    "plt.plot(xs, v_fp(xs))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{ lambda ; a:f32[]. let\n",
       "    b:f32[] = tanh a\n",
       "    c:f32[] = sub 1.0 b\n",
       "    d:f32[] = mul 1.0 c\n",
       "    e:f32[] = mul d b\n",
       "    f:f32[] = add_any d e\n",
       "  in (f,) }"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "make_jaxpr(fp)(1.0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "fpp = grad(fp)\n",
    "fppp = grad(fpp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Array(0., dtype=float32, weak_type=True)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fpp(0.0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Array(-2., dtype=float32, weak_type=True)"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fppp(0.0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "v_fpp = vmap(fpp)\n",
    "v_fppp = vmap(fppp)\n",
    "\n",
    "xs = np.arange(-5, 5, 0.1)\n",
    "plt.plot(xs, f(xs), label=\"sigmoid(x)\")\n",
    "plt.plot(xs, v_fp(xs), label=\"sigmoid'(x)\")\n",
    "plt.plot(xs, v_fpp(xs), label=\"sigmoid''(x)\")\n",
    "plt.plot(xs, v_fppp(xs), label=\"sigmoid'''(x)\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{ lambda ; a:f32[]. let\n",
       "    b:f32[] = tanh a\n",
       "    c:f32[] = sub 1.0 b\n",
       "    d:f32[] = sub 1.0 b\n",
       "    e:f32[] = mul 1.0 d\n",
       "    f:f32[] = mul e b\n",
       "    _:f32[] = add_any e f\n",
       "    g:f32[] = mul e 1.0\n",
       "    h:f32[] = mul 1.0 b\n",
       "    i:f32[] = add_any 1.0 h\n",
       "    j:f32[] = mul 1.0 i\n",
       "    k:f32[] = neg j\n",
       "    l:f32[] = add_any g k\n",
       "    m:f32[] = mul l c\n",
       "    n:f32[] = mul m b\n",
       "    o:f32[] = add_any m n\n",
       "  in (o,) }"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "make_jaxpr(fpp)(0.0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{ lambda ; a:f32[]. let\n",
       "    b:f32[] = tanh a\n",
       "    c:f32[] = sub 1.0 b\n",
       "    d:f32[] = sub 1.0 b\n",
       "    e:f32[] = sub 1.0 b\n",
       "    f:f32[] = mul 1.0 e\n",
       "    g:f32[] = mul f b\n",
       "    _:f32[] = add_any f g\n",
       "    h:f32[] = mul f 1.0\n",
       "    i:f32[] = mul 1.0 b\n",
       "    j:f32[] = add_any 1.0 i\n",
       "    k:f32[] = mul 1.0 j\n",
       "    l:f32[] = neg k\n",
       "    m:f32[] = add_any h l\n",
       "    n:f32[] = mul m d\n",
       "    o:f32[] = mul n b\n",
       "    _:f32[] = add_any n o\n",
       "    p:f32[] = mul n 1.0\n",
       "    q:f32[] = mul 1.0 b\n",
       "    r:f32[] = add_any 1.0 q\n",
       "    s:f32[] = mul m r\n",
       "    t:f32[] = mul r d\n",
       "    u:f32[] = neg t\n",
       "    v:f32[] = mul 1.0 u\n",
       "    w:f32[] = mul 1.0 v\n",
       "    x:f32[] = mul t 1.0\n",
       "    y:f32[] = add_any p w\n",
       "    z:f32[] = mul 1.0 x\n",
       "    ba:f32[] = neg s\n",
       "    bb:f32[] = add_any y ba\n",
       "    bc:f32[] = neg z\n",
       "    bd:f32[] = add_any bb bc\n",
       "    be:f32[] = mul bd c\n",
       "    bf:f32[] = mul be b\n",
       "    bg:f32[] = add_any be bf\n",
       "  in (bg,) }"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "make_jaxpr(fppp)(0.0)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:torch-cpu]",
   "language": "python",
   "name": "conda-env-torch-cpu-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
